<?php
/**
 * 
 * modelo de historico de transaccion de entrada 
 * @author Natanael
 * 
 */
class TransaccionHistorico extends Model{
	         
	 private $_nameTable = "IB_TransaccionesEntradaHistorico";
	   
       public function __construct()
       {
            parent::Model();
		    $this->load->database();
       }
       
       public function loadTransaccionH($start = false, $offset = false, $sortname = false, $sortorder = false)
       {
            
              if($offset != false)
				  $this->db->limit($offset, $start);

			  if($sortname != false && $sortorder != false) 
				  $this->db->order_by($sortname, $sortorder);
				  
		      $result = $this->db->get_where($this->_nameTable);
	
			  return $this->GetArrayFromQueryResult($result);
			
        }
        
        public function loadTransaccionById($id) 
        {
             $qresult = $this->db->get_where($this->_nameTable, array('IdTransaccion' => $id));		
		
		     if ($qresult->num_rows() == 0)
		     {
			   return false;
		     }	
           
		      return new IB_TransaccionesEntradaHistorico($qresult->row());
         }
         
		public function upDateRegistro($data, $id)
		{	
			
			if($this->db->update($this->_nameTable, $data, array('IdTransaccion' => $id))){
				
			return true;
			
			}
			
			return false;
		}
                    
                    function LoadGraficoKpis($usuario,$fdesde,$fhasta,$fecha) 
                    {
		  

		    if ($usuario != NULL)  
		            $this->db->where('IdUsuario',$usuario);     
		   
                        if($fecha != NULL)
                        {
                            $this->db->where("FechaHistorico >","$fdesde");
                            $this->db->where("FechaHistorico <", "$fhasta");
                            
                        }
			$result = $this->db->get_where($this->_nameTable);
	
			return $this->GetArrayFromQueryResult($result);
                        }
   
                     function LoadGraficoKpisHistorico($usuario,$fdesde,$fhasta) 
                    {
		  

		    if ($usuario){  
		            $this->db->where('IdUsuario',$usuario); }    
		   
                       
                            $this->db->where('IdMotivoSalida',6);
                            $this->db->where("FechaHistorico >","$fdesde");
                            $this->db->where("FechaHistorico <","$fhasta");
                            
                        
			$result = $this->db->get_where($this->_nameTable);
	
			return $this->GetArrayFromQueryResult($result);
                        }
                    
	
         public function loadByWhere($where, $usuario = false) 
         {
          	if ($usuario != false) {
          		
		    	$this->db->where('IdUsuario', $usuario);
		    	
		    }
         	 $qresult = $this->db->get_where($this->_nameTable, $where);
         	 if ($qresult->num_rows() == 0)
		     {
			   return false;
		     }	
           
		     return $this->GetArrayFromQueryResult($qresult);
         }
         
         public function loadCantByWhere($where, $usuario = false) 
         {
         	if ($usuario != false) {
          		
		    	$this->db->where('IdUsuario', $usuario);
		    }
         	 
         	$qresult = $this->db->get_where($this->_nameTable, $where);         	
         	return $qresult->num_rows();
         	
         	
         }
         
  		 public function loadCantByIn($where, $idServicio, $usuario = false) 
         {
         	if ($usuario != false) {
          		
		    	$this->db->where('IdUsuario', $usuario);
		    }
   
         	$this->db->where($where);
         	$this->db->where_in('IdServicio', $idServicio);
            $result = $this->db->get($this->_nameTable);
         	return $result->num_rows();
         	
         }
         
 		public function loadCantW($where, $usuario = false) 
         {
         	if ($usuario != false) {
          		
		    	$this->db->where('IdUsuario', $usuario);
		     }
		     
		     $this->db->where($where);
         	 $this->db->where_in('IdServicio',array(15,2));
         	 $qresult = $this->db->get_where($this->_nameTable, $where);
         	 if ($qresult->num_rows() == 0)
		     {
			   return false;
		     }	
           
		     return $this->GetArrayFromQueryResult($qresult);	
         	
         }
         
         
 		public function loadCantidadWhere($where, $idMotivoS, $usuario = false) 
         {
         	if ($usuario != false) {
          		
		    	$this->db->where('IdUsuario', $usuario);
		    }
   
         	$this->db->where($where);
         	$this->db->where_in('IdMotivoSalida', $idMotivoS);
            $result = $this->db->get($this->_nameTable);
         	return $result->num_rows();
         	
         }
          
         public function loadOtrosServicios($where, $usuario = false) 
         {
         	if ($usuario != false) {
          		
		    	$this->db->where('IdUsuario', $usuario);
		     }
		     
		     $this->db->where($where);
         	 $this->db->where_in('IdServicio',array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17));
         	 $qresult = $this->db->get_where($this->_nameTable, $where);
         	 if ($qresult->num_rows() == 0)
		     {
			   return false;
		     }	
           
		     return $this->GetArrayFromQueryResult($qresult);	
         	
         }
         
         
         
 		public function loadCantBySalidas($where = false, $usuario = false) 
         {
         	
         	if ($usuario != false) {
          		
		    	$this->db->where('IdUsuario', $usuario);
		    }
   
         	$this->db->where($where);
         	$this->db->where_in('IdMotivoSalida',array(6,9,10,11,13));
            $result = $this->db->get($this->_nameTable);
         	return $result->num_rows();
         }
         
		public function loadSalidasTipo($where, $usuario = false) 
         {
         	if ($usuario != false) {
          		
		    	$this->db->where('IdUsuario', $usuario);
		    }
   
         	$this->db->where($where);
         	$this->db->where_in('IdMotivoSalida',array(6,9,10,11,13));
            $result = $this->db->get($this->_nameTable);
         	return $result->num_rows();
         }
         
        public function GetArrayFromQueryResult($result) 
	    {
			if ($result->num_rows() == 0)
				return false;
	
			$estatus_arr = array();
	
			foreach ($result->result() as $record) {
				$estatus_arr[] = new IB_TransaccionesEntradaHistorico($record);
			}
	
			return $estatus_arr;
         }
	     /**
		 * metodo transaccionAdd:
		 * 
		 * Este metodo se encarga de ejecutar un query 
		 * que agregre los campos pasados por parametros
		 * en la tabla IB_TransaccionesEntradaHistorico,
		 * para luego eliminar el inbound de la tabla IB_TransaccionesEntrada
		 * mediante un Trigger
		 * 
		 * @param array $data
		 */
        public function transaccionAdd($data)
        {
           
        	$this->db->insert($this->_nameTable, $data); 
           
        }
        
        public function update($where,$data)
        {
              $this->db->where('IdTransaccion', $where);	
           if ($this->db->update($this->_nameTable,$data)) {
             return true;
           }
           else{
              return false;
           }
       }
}

class IB_TransaccionesEntradaHistorico{

             private $_IdTransaccion = 0;
             private $_Referencia = "";
             private $_IdServicio = 0;
             private $_IdTipoEntrada = 0;
             private $_Contacto = "";
             private $_Telefono1 = "";
             private $_Telefono2 = "";
             private $_Email = "";
             private $_IdUsuario = 0;
             private $_IdUsuarioHistorico = "";
             private $_IdMotivoSalida = 0;
             private $_FechaHistorico = "";
             private $_FechaSolicitud = "";
             private $_FechaSistema = "";
             private $_precioVentas = "";
             private $_IdCampania;
             private $_est;
             private $_clasificacionS;
             
             public function __construct($ojt)
             {
                $this->setIdTransaccion($ojt->IdTransaccion); 
                $this->setReferencia($ojt->Referencia);
                $this->setIdServicio($ojt->IdServicio);
                $this->setIdTipoEntrada($ojt->IdTipoEntrada);
                $this->setContacto($ojt->Contacto);
                $this->setTelefono1($ojt->Telefono1);
                $this->setTelefono2($ojt->Telefono2);
                $this->setEmail($ojt->Email);
                $this->setIdUsuario($ojt->IdUsuario);
                $this->setIdUsuarioHistorico($ojt->IdUsuarioHistorico);
                $this->setIdMotivoSalida($ojt->IdMotivoSalida);
                $this->setFechaHistorico($ojt->FechaHistorico);
                $this->setFechaSolicitud($ojt->FechaSolicitud);
                $this->setFechaSistema($ojt->FechaSistema);
                $this->setPrecioVenta($ojt->preciosVentas);
                $this->setIdCampania($ojt->CampaniaId);
                $this->setEst($ojt->est);
               // $this->setClasificacionS($ojt->clasificacion_servicios);
             }
             
             public function getIdTransaccion()
             {
                return $this->_IdTransaccion;
             }
             
             public function setIdTransaccion($ojt)
             {
                $this->_IdTransaccion = $ojt;
             }
             
             public function getReferencia()
             {
                return $this->_Referencia;
             }
             
             public function setReferencia($ojt)
             {
                 $this->_Referencia = $ojt;	 
             }
             
             public function getIdServicio()
             {
                return $this->_IdServicio;
             }
             
             public function setIdServicio($ojt)
             {
                 $this->_IdServicio= $ojt;	 
             }
             
             public function getIdTipoEntrada()
             {
                return $this->_IdTipoEntrada;
             }
             
             public function setIdTipoEntrada($ojt)
             {
                 $this->_IdTipoEntrada= $ojt;	 
             }
              
             public function getContacto()
             {
                return $this->_Contacto;
             }
             
             public function setContacto($ojt)
             {
                 $this->_Contacto = $ojt;	 
             }
              
             public function getTelefono1()
             {
                return $this->_Telefono1;
             }
             
             public function setTelefono1($ojt)
             {
                 $this->_Telefono1 = $ojt;	 
             }
             
             public function getTelefono2()
             {
                return $this->_Telefono2;
             }
             
             public function setTelefono2($ojt)
             {
                 $this->_Telefono2 = $ojt;	 
             }

             public function getEmail()
             {
                return $this->_Email;
             }
             
             public function setEmail($ojt)
             {
                 $this->_Email = $ojt;	 
             }

             public function getIdUsuario()
             {
                return $this->_IdUsuario;
             }
             
             public function setIdUsuario($ojt)
             {
                 $this->_IdUsuario = $ojt;	 
             }

             public function getIdUsuarioHistorico()
             {
                return $this->_IdUsuarioHistorico;
             }
             
             public function setIdUsuarioHistorico($ojt)
             {
                 $this->_IdUsuarioHistorico= $ojt;	 
             }
             
             public function getIdMotivoSalida()
             {
                return $this->_IdMotivoSalida;
             }
             
             public function setIdMotivoSalida($ojt)
             {
                 $this->_IdMotivoSalida = $ojt;	 
             }
             
             public function getFechaHistorico()
             {
                return $this->_FechaHistorico;
             }
             
             public function setFechaHistorico($ojt)
             {
                 $this->_FechaHistorico = $ojt;	 
             }
             
             public function getFechaSolicitud()
             {
                return $this->_FechaSolicitud;
             }
             
             public function setFechaSolicitud($ojt)
             {
                 $this->_FechaSolicitud = $ojt;	 
             }
             
             public function getFechaSistema()
             {
                return $this->_FechaSistema;
             }
             
             public function setFechaSistema($ojt)
             {
                 $this->_FechaSistema = $ojt;	 
             }
             
             public function getPrecioVenta()
             {
             	return $this->_precioVentas;
             }
             
             public function setPrecioVenta($ojt)
             {
             	 $this->_precioVentas = $ojt;
             }
             
             public function getIdCampania()
             {
             	return $this->_IdCampania;
             }
             
             public function setIdCampania($ojt)
             {
             	$this->_IdCampania = $ojt;
             }
             
             public function getEst()
             {
             	return $this->_est;
             }
             
             public function setEst($ojt)
             {
             	$this->_est = $ojt;
             }
             
			public function setClasificacionS($clasificacion)
			{
		       $this->_clasificacionS = $clasificacion;
			}
	
			public function getClasificacionS()
			{
				return $this->_clasificacionS;
			}
             
	 }